# -*- coding: utf-8 -*-
from datos_taxonomicos.models import DatoTaxonomico, Especie, Genero, Familia, \
    Phylum, Reino, Dato, Orden, Clase
from django import forms
from django.forms import ModelForm
import autocomplete_light

class DatoTaxonomicoForm(ModelForm):
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(DatoTaxonomico)
        model=DatoTaxonomico


def get_choices_for_dato_form():
    lista_retornar= []
    for sub_clase in Dato.__subclasses__():
        nombre_sub_clase = sub_clase._meta.verbose_name.capitalize()
        indice_sub_clase = Dato.__subclasses__().index(sub_clase)
        lista_retornar.append((indice_sub_clase,nombre_sub_clase))
    return lista_retornar


class DatoForm(ModelForm):
    nombre = forms.CharField(label='Nombre de Dato Taxonómico')
    tipo_de_dato = forms.ChoiceField(choices=get_choices_for_dato_form())
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Dato)
        model=Dato
        
class ReinoForm(ModelForm):
    nombre = forms.CharField(label='*Nombre del Reino')
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Reino)
        model=Reino
        
class PhylumForm(ModelForm):
    nombre = forms.CharField(label='*Nombre del Phylum')
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Phylum)
        model=Phylum
        
class ClaseForm(ModelForm):
    nombre = forms.CharField(label='*Nombre de la Clase')
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Clase)
        model=Clase

class OrdenForm(ModelForm):
    nombre = forms.CharField(label='*Nombre del Orden')
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Orden)
        model = Orden

class FamiliaForm(ModelForm):
    nombre = forms.CharField(label='*Nombre de la Familia')
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Familia)
        model=Familia
        

#genero        
class GeneroForm(ModelForm):
    nombre = forms.CharField(label='*Nombre del Género')
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Genero)
        model=Genero

#especie
class EspecieForm(ModelForm):
    nombre = forms.CharField(label='*Nombre de la Especie')
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Especie)
        model=Especie